package edu.ecnu.yt.spring.di.compactdisc;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component("lonelyHeartsClubBand")
public class SgtPeppers implements CompactDisc {
	
	private String title = "Sgt. Pepper's Lonely Hearts Club Band.";
	private String artist = "";
	
//	@Autowired
//	public SgtPeppers(ArtistBean artistBean) {
//		artist = artistBean.msg;
//	}
	
	/*
	 * 这里和setter并无关系，只要是参数类型适应的都会被注入。
	 * 甚至参数可以包含其他的类型(当然需要是bean)。
	 * 如果将require设置为false(默认是true)，那么如果参数不满足autowire的条件
	 * 比如参数类型不符合，那么就不会自动注入，如果设置为true，参数不满足条件的
	 * 话，就会报错。
	 */
	@Autowired(required=false)
	public void setArtist(BeatlesBean artist) {
		this.artist = artist.name;
	}
	
	public void play() {
		System.out.println("Playing " + title + " by " + artist);
	}
}
